package org.hs.phd.odi.tracking.tool;

import java.awt.Color;

import org.hs.phd.odi.tracking.tracker.TrackerGroup;
import org.hs.phd.odi.tracking.tracker.comaniciu.ComaniciuTracker;
import org.hs.phd.odi.tracking.tracker.omnimeanshift.OmniMeanshiftTracker;
import org.hs.phd.odi.tracking.tracker.opencvmeanshift.OpenCvCAMshiftTracker;
import org.hs.phd.odi.tracking.tracker.opencvmeanshift.OpenCvMeanshiftTracker;
import org.hs.phd.odi.tracking.tracker.particlefilter.tracker.HistogramMatchingBasedParticleFilterTracker;
import org.hs.phd.odi.tracking.tracker.particlefilter.tracker.SphericalHistogramMatchingBasedParticleFilterTracker;
import org.hs.phd.odi.transformation.ODITransformation;

public final class TrackerToolUtil {

	private static final Color BROWN = Color.decode("#A52A2A");
	private static final Color OLIVE = Color.decode("#808000");
	private static final Color PURPLE = Color.decode("#8E35EF");

	private TrackerToolUtil(){}

	public static TrackerGroup createAllTrackersGroup(ODITransformation transformation) {
        TrackerGroup trackerGroup = new TrackerGroup();
        trackerGroup.add( new ComaniciuTracker(), OLIVE );
        trackerGroup.add( new OmniMeanshiftTracker(transformation), Color.BLUE);
        trackerGroup.add( new OpenCvMeanshiftTracker(), Color.YELLOW);
        trackerGroup.add( new OpenCvCAMshiftTracker(), Color.GREEN);
        trackerGroup.add( new HistogramMatchingBasedParticleFilterTracker(), Color.RED);
        trackerGroup.add( new SphericalHistogramMatchingBasedParticleFilterTracker(transformation), PURPLE);
        
        return trackerGroup; 
	}
}
